草庐IT

c - 新线程的pid

全部标签

c# - 使用带参数的方法创建新线程

这个问题在这里已经有了答案:c#threadmethod(5个答案)关闭9年前。我正在尝试创建新线程并传递一个带参数的方法,但是出错了。Threadt=newThread(myMethod);t.Start(myGrid);publicvoidmyMethod(UltraGridmyGrid){}--------错误------------Error:CS1502-line92(164)-Thebestoverloadedmethodmatchfor'System.Threading.Thread.Thread(System.Threading.ThreadStart)'hassome

c# - PID Controller 积分项导致极度不稳定

我有一个在机器人上运行的PIDController,旨在使机器人转向罗盘航向。PID校正以20Hz的速率重新计算/应用。尽管PIDController在PD模式(即,积分项归零)下运行良好,但即使是最少量的积分也会迫使输出不稳定,从而导致转向执行器被推向左侧或左侧右极端。代码:privatestaticvoidDoPID(objecto){//BringtheLEDuptosignifyframestartBoardLED.Write(true);//GetIMUheadingfloatcurrentHeading=(float)RazorIMU.Yaw;//WejustgottheI

c# - 使用 Task.StartNew 方法时如何保证创建新线程

据我所知,我有误导性信息。我需要在后台运行一个单独的线程。目前我是这样做的:vartask=Task.Factory.StartNew(CheckFiles,cancelCheckFile.Token,TaskCreationOptions.LongRunning,TaskScheduler.Default);//CheckforfilesonanotherthreadprivatevoidCheckFiles(){while(!cancelCheckFile.Token.IsCancellationRequested){//dostuff}}这总是为我创建一个新线程。然而,经过多次讨

c# - 产生一个新线程以打开一个新窗口并从另一个线程关闭它

现在我有C#代码在不同的线程中生成一个新窗口,这有效,但是一旦新生成的窗口打开,它就会关闭并且线程结束。我将如何做到这一点,以便可以从第一个线程关闭新生成的窗口?这是当前生成工作方式的“树”:主线程--使用主线程中的一个函数在单独的线程中启动另一个函数来打开w窗口,导致窗口使用该线程。基本上我只希望两个窗口各有自己的线程。并能够从第一个窗口线程控制生成的辅助窗口。 最佳答案 我敢打赌你正在做的是这样的:newThread(()=>newTestForm().Show()).Start();因为这会使窗口立即消失,就像您描述的那样。试

c# - Async/await 作为协程的替代品

我使用C#迭代器替代协程,它一直运行良好。我想切换到async/await,因为我认为它的语法更清晰并且它给了我类型安全性。Inthis(outdated)blogpost,JonSkeetshowsapossiblewaytoimplementit.我选择了一种稍微不同的方式(通过实现我自己的SynchronizationContext并使用Task.Yield)。这很好用。然后我意识到会有问题;目前协程不必完成运行。它可以在任何让步的地方优雅地停止。我们可能有这样的代码:privateIEnumeratorSleep(intmilliseconds){Stopwatchtimer=

c# - 从 MS-Word ApplicationClass 获取 PID?

考虑这段代码:usingMicrosoft.Office.Interop.Word;ApplicationClass_application=newApplicationClass();我能否从_application启动的Winword.exe进程中获取PID?我需要PID,因为文件已损坏,我无法退出ApplicationClass,即使使用以下代码也是如此:_application.Quit(refsaveFile,refmissing,refmissing);System.Runtime.InteropServices.Marshal.ReleaseComObject(_appl

c# - Parallel.ForEach 不断产生新线程

当我在我的程序中使用Parallel.ForEach时,我发现有些线程似乎永远不会结束。事实上,它一遍又一遍地产生新线程,这是我没有预料到也绝对不希望出现的行为。我能够使用以下代码重现此行为,就像我的“真实”程序一样,它们都大量使用处理器和内存(.NET4.0代码):publicclassNode{publicNodePrevious{get;privateset;}publicNode(Nodeprevious){Previous=previous;}}publicclassProgram{publicstaticvoidMain(string[]args){DateTimestar

c# - (错误)使用 C# 迭代器实现协程的陷阱

我正在编写重构Silverlight程序以使用WCF服务中的部分现有业务逻辑。这样做时,我遇到了Silverlight3中的限制,它只允许对WCF服务进行异步调用,以避免长时间运行或无响应的服务调用阻塞UI线程的情况(SL有一个有趣的队列模型来调用WCF服务在UI线程上)。因此,编写曾经简单明了的内容正变得越来越复杂(请参阅问题末尾的代码示例)。理想情况下,我会使用coroutines为了简化实现,但遗憾的是,C#目前不支持协程作为本地语言工具。但是,C#确实有使用yieldreturn的生成器(迭代器)的概念。句法。我的想法是重新调整yield关键字的用途,以允许我为相同的逻辑构建一

c# - 获取 Windows 服务的 PID

谁能帮我知道如何获取Windows服务的PID?我需要获取PID才能运行以下命令:Process.Start(newProcessStartInfo{Filename="cmd.exe",CreateNoWindow=true,UseShellExecute=false,Arguments=string.Format("/ctaskkill/pid{0}/f",pidnumber)}); 最佳答案 其他答案忽略的事实是,单个进程也可以托管多个自治服务。svchost.exe进程的多个实例,每个实例托管几个服务,就是最好的例子。因此,

c# - 从 VID/PID 中查找 USB 盘符(XP 及更高版本需要)

所以我想我会在这里包含最终答案,这样您就不必理解这篇文章了。非常感谢SimonMourier花时间解决这个问题。我的工作代码try{//GetalistofavailabledevicesattachedtotheUSBhubListdisks=newList();varusbDevices=GetUSBDevices();//EnumeratetheUSBdevicestoseeifanyhavespecificVID/PIDforeach(varusbDeviceinusbDevices){if(usbDevice.DeviceID.Contains(USB_PID)&&usbDe